self.vmWatch = None
self.shutdownWatch = None
self.shutdownStartTime = None
- self.unresponsive = False
self._resume = resume
self.state_updated = threading.Condition()
# failed. Ignore this domain.
pass
else:
- # Domain is alive.
+ # Domain is alive. If we are shutting it down, then check
+ # the timeout on that, and destroy it if necessary.
if xeninfo['paused']:
self._stateSet(DOM_STATE_PAUSED)
else:
self._stateSet(DOM_STATE_RUNNING)
- if self.shutdownStartTime and not self.unresponsive:
+ if self.shutdownStartTime:
timeout = (SHUTDOWN_TIMEOUT - time.time() +
self.shutdownStartTime)
if timeout < 0:
- # The domain is not responding to shutdown requests.
- # Log a message, and rename the domain to indicate the
- # state; we keep the domain running, however, to
- # allow corrective action.
log.info(
"Domain shutdown timeout expired: name=%s id=%s",
self.info['name_label'], self.domid)
- self.setName('unresponsive-' + self.getName())
- self.unresponsive = True
+ self.destroy()
finally:
self.refresh_shutdown_lock.release()
log.debug('XendDomainInfo.constructDomain')
self.shutdownStartTime = None
- self.unresponsive = False
hvm = self.info.is_hvm()
if hvm: